// ********************************************************************************************
// Este archivo fuente es propiedad de Feria de Remates S.R.L. de C.V. Prohibida su copia o uso
// sin autorización explícita.
// This source file is propietary to Feria de Remates S.R.L. de C.V. May not be used or copied
// without explicit authorization.
// ********************************************************************************************/

package com.feriaderemates.domain.listing;

import com.feriaderemates.domain.userAccount.State;
import java.sql.Date;
import java.util.List;

/**
 *
 * @author Oscar García
 */
public abstract class Listing {
    
    protected String title; 
    protected String subTitle;
    protected String description;
    private Date startDate; //non updatable
    private Date endDate; //non updatable
    protected String warranty;
    private SaleType saleType; //non updatable
    protected ListingType listingType; 
    protected List<PaymentMethod> paymentMethods;
    protected ListingStatus listingStatus;
    protected State state;
    protected String city;
    protected List<String> imagesPaths;
    protected int number_of_views; //non updatable through an instance of Listing
    protected String username; //non updatable 
    private long listingId; //non updatable 
    private int categoryId;
    private int numberOfBids; 
    /**
     * @return the tittle
     */
    public String getTitle() {
        return title;
    }

    /**
     * @return the subtitle
     */
    public String getSubTitle() {
        return subTitle;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @return the startDate
     */
    public Date getStartDate() {
        return startDate;
    }

    /**
     * @return the endDate
     */
    public Date getEndDate() {
        return endDate;
    }

    /**
     * @return the warranty
     */
    public String getWarranty() {
        return warranty;
    }

    /**
     * @return the listingType
     */
    public ListingType getListingType() {
        return listingType;
    }

    /**
     * @return the paymentMethods
     */
    public List<PaymentMethod> getPaymentMethods() {
        return paymentMethods;
    }

    /**
     * @return the listingStatus
     */
    public ListingStatus getListingStatus() {
        return listingStatus;
    }

    /**
     * @return the state
     */
    public State getState() {
        return state;
    }

    /**
     * @return the city
     */
    public String getCity() {
        return city;
    }

    /**
     * @return the imagesPaths
     */
    public List<String> getImagesPaths() {
        return imagesPaths;
    }

    /**
     * @param tittle the tittle to set
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * @param subtitle the subtitle to set
     */
    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @param warranty the warranty to set
     */
    public void setWarranty(String warranty) {
        this.warranty = warranty;
    }

    /** 
     * @param listingType the listingType to set
     */
    public void setListingType(ListingType listingType) {
        this.listingType = listingType;
    }

    /**
     * @param paymentMethods the paymentMethods to set
     */
    public void setPaymentMethods(List<PaymentMethod> paymentMethods) {
        this.paymentMethods = paymentMethods;
    }

    /**
     * @param listingStatus the listingStatus to set
     */
    public void setListingStatus(ListingStatus listingStatus) {
        this.listingStatus = listingStatus;
    }

    /**
     * @param state the state to set
     */
    public void setState(State state) {
        this.state = state;
    }

    /**
     * @param city the city to set
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     * @param imagesPaths the imagesPaths to set
     */
    public void setImagesPaths(List<String> imagesPaths) {
        this.imagesPaths = imagesPaths;
    }

    /**
     * @return the number_of_views
     */
    public int getNumber_of_views() {
        return number_of_views;
    }

    /**
     * @param number_of_views the number_of_views to set
     */
    public void setNumber_of_views(int number_of_views) {
        this.number_of_views = number_of_views;
    }

    /**
     * @return the userId
     */
    public String getUsername() {
        return username;
    }

    /**
     * @return the listingId
     */
    public long getListingId() {
        return listingId;
    }

    /**
     * @param listingId the listingId to set
     */
    public void setListingId(long listingId) {
        this.listingId = listingId;
    }

    /**
     * @return the categoryId
     */
    public int getCategoryId() {
        return categoryId;
    }

    /**
     * @param categoryId the categoryId to set
     */
    public void setCategoryId(int categoryId) {
        this.categoryId = categoryId;
    }

    /**
     * @param startDate the startDate to set
     */
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    /**
     * @param endDate the endDate to set
     */
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    /**
     * @return the saleType
     */
    public SaleType getSaleType() {
        return saleType;
    }

    /**
     * @param saleType the saleType to set
     */
    public void setSaleType(SaleType saleType) {
        this.saleType = saleType;
    }

    /**
     * @return the numberOfBids
     */
    public int getNumberOfBids() {
        return numberOfBids;
    }

    /**
     * @param numberOfBids the numberOfBids to set
     */
    public void setNumberOfBids(int numberOfBids) {
        this.numberOfBids = numberOfBids;
    }


}
